package com.zf.until_now;

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
 * jdk10新特性正式版：
 * - var 类型推断
 * - List.copyOf 复制得到一个不可改变集合，即使原来的集合元素发生了变化也不会有影响。
 * - Stream 最后收集数据的时候，Collectors 可以直接指定收集的集合为不可变集合
 */
public class Jdk10Release {
    public static void main(String[] args) {
        // var 类型推断
        var map = new HashMap<String, String>();
        map.put("name", "zhangsan");
        System.out.println(map);

        // List.copyOf 复制得到一个不可改变集合，即使原来的集合元素发生了变化也不会有影响。
        List<Integer> list = Arrays.asList(1, 2, 3);
        List<Integer> res1 = List.copyOf(list);
        // res1.remove(1);
        System.out.println(res1);

        // Stream 最后收集数据的时候，Collectors 可以直接指定收集的集合为不可变集合
        List<Integer> res2 = Stream.of(1, 2).collect(Collectors.toUnmodifiableList());
        Set<Integer> res3 = Stream.of(1).collect(Collectors.toUnmodifiableSet());
        // res2.remove(1);
        // res3.remove(1);
        System.out.println(res2);
        System.out.println(res3);
    }
}
